package com.ruoyi.other.service;
import javax.servlet.http.HttpServletRequest;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.other.pojo.AppUserLogoutDTO;
import com.ruoyi.other.pojo.AppUserThirdDTO;
import com.ruoyi.other.pojo.AppVoiceCallDTO;

/**
 * 	平台其他相关接口
 * @author DEREK
 *
 */
public interface AppOtherService {

	/**
	 * 	获取注销原因
	 * @param request
	 * @return
	 */
	AjaxResult getLogoutType(HttpServletRequest request);
	
	/**
	 * 	注销账号
	 * @param userLogout
	 * @param request
	 * @return
	 */
	AjaxResult confirmLogout(AppUserLogoutDTO userLogout,HttpServletRequest request);
	
	/**
	 * 	账号管理
	 * @param request
	 * @return
	 */
	AjaxResult getAccountManage(HttpServletRequest request);
	
	/**
	 * 	绑定支付宝
	 * @param userThird
	 * @param request
	 * @return
	 */
	AjaxResult bindAlipay(AppUserThirdDTO userThird,HttpServletRequest request);
	
	/**
	 * 	绑定微信
	 * @param userThird
	 * @param request
	 * @return
	 */
	AjaxResult bindWechat(AppUserThirdDTO userThird,HttpServletRequest request);
	
	/**
	 * 	获取真人认证token
	 * @param request
	 * @return
	 */
	AjaxResult getRealNameToken(HttpServletRequest request);
	
	/**
	 * 	认证完成 前端回调接口
	 * @param request
	 * @return
	 */
	AjaxResult authPass(HttpServletRequest request);
	
	/**
	 * 	赠送礼物
	 * @param toUserId		对方ID
	 * @param businessId	礼物ID
	 * @param request
	 * @return
	 */
	AjaxResult giveGift(Long toUserId,Long businessId,HttpServletRequest request);
	
	/**
	 * 	赠送礼物流水
	 * @param pageNo
	 * @param request
	 * @return
	 */
	AjaxResult giveGiftFlow(Integer pageNo,HttpServletRequest request);
	
	/**
	 * 	收到礼物流水
	 * @param pageNo
	 * @param request
	 * @return
	 */
	AjaxResult receiveGiftFlow(Integer pageNo,HttpServletRequest request);
	
	/**
	 * 	发起语音通话校验余额
	 * @param request
	 * @return
	 */
	AjaxResult sendVoiceCallCheck(Integer toUserId,HttpServletRequest request);
	
	/**
	 * 	声网回调
	 * @param payload
	 * @return
	 */
	AjaxResult notifyAgora(String payload);
	
	/**
	 * 	修改语音通话状态
	 * @param call.toUserId 	对方用户ID
	 * @param call.sid			当前会话ID
	 * @param call.status		状态 0=发起中 1=通话中 2=已结束 3=已拒绝 4=未接通 5=已取消 6=余额不足自动挂断
	 * @param request
	 * @return
	 */
	AjaxResult updVoiceCallStatus(AppVoiceCallDTO call,HttpServletRequest request);
	
	/**
	 * 	获取用户token
	 * @param request
	 * @return
	 */
	AjaxResult getUserToken(HttpServletRequest request);
	
	/**
	 * 	融云回调
	 * @param payload
	 * @return
	 */
	AjaxResult notifyRongCloud(String payload);
}

